/*
  async
    async关键字用于修饰函数，被他修饰的函数，一定返回Promise

  await
    await 关键字表示等待某个Promise完成，他必须用于async函数中
*/

/* async function m() {
  return 123;
}

// async m 等同于与下面的函数
function m() {
  return new Promise((resolve, reject) => {
    resolve(123);
  });
} */

/* async function m() {
  // async中直接返回Promise，相当于着如果async没加，可以说这个方法的状态和内部返回的Promise状态一致
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(123);
    }, 100);
  });
}

m().then((res) => console.log(res)); */

// await等待的不是Promise, 会包装成Promise
(async () => {
  const data = await 1; // 相当于 const data = await Prmoise.resolve(1)
  console.log("🚀 ~ data:", data);
})();
